对话MySQL之父:代码一次性完成才是优秀程序员
【CSDN 编者按】MySQL之父Monty有着四十多年的编程经验,从儿时的兴趣到长大后的深耕,他在编程领域不断钻研,最终成为编程大师。《》带你走进Monty的程序人生,谈谈他在编程方面的最新感悟以及对未来的预测。
如今,我们正处于数据爆炸的时代,软件崛起的背后是数据的支持。而随着开源技术的发展,越来越多的数据库选择创建开源社区,让更多开发者参与到数据库的建设中来。
Monty近照(图源自Wiki)
“我在编程方面有一定的天赋”
1962年,Monty出生在芬兰首都赫尔辛基,小时候的他便对计算机有着浓厚的兴趣。1978年,年仅16岁的Monty用他一整个暑假打工攒的钱买了人生中的第一台电脑,并且用BASIC语言写下了第一行代码REM,从此以后他便与编程结下了不解之缘。三年后,Monty被北欧著名高校赫尔辛基理工大学录取,但由于自己的学习理念与学校不同,他感到在学校学不到什么东西,因此没过多久就辍学了。1981年。离开了校园的Monty开始在荷兰的一家叫做Tapio Laakso Oy的公司当程序员。在近十年之后,34岁的Monty开发出了历史上最流行的开源数据库之一——MySQL。
戳↑↑查看采访视频
Monty能开发出MySQL并非偶然,他在编程上投入了大量的时间。根据早期的资料显示,就连别人去参加聚会时,他也在家里写代码。在他看来,好的代码不需要一次又一次地重写,而是在开始写之前,就抱有一次写成的心态。正因为如此,直到多年后的今天,Monty仍然直言“自己在编程方面具有一定的天赋”。
除了Monty,MySQL的诞生还离不开David Axmark和Allan Larsson。早在1980年,17岁的Monty打算将自己的计算机内存从8KB提高到16KB。机缘巧合之下,他去往瑞典Allan Larsson的电脑店寻求帮助,在那里认识了同样也是写代码的David Axmark,之后三人就成为了亲密的合作伙伴,经常一起写代码,解决编程过程中遇到的问题。1995年,三人创立了MySQL AB,MySQL AB就是MySQL的雏形。这其中Monty负责了大部分的开发工作。最终,在1996年10月,MySQL首个版本发布,从此掀开了数据库历史的重要一章。
到了1999年,MySQL的迅速发展已经引起了许多人的注意, Oracle表示要以5000万美元的价格收购MySQL。然而Monty三人并不想止步于此,也不想失去对MySQL的控制,因此拒绝了这次收购。
2008年1月16日,Sun Microsystems以高达10亿美元的价格收购MySQL(然而次年Sun又被Oracle收购)。当时Monty担心MySQL可能会受到Oracle的控制而变得商业化,并且如果Oracle一家独大的话,可能会引发数据库领域的不良竞争。于是他发起了一场拯救MySQL的请愿活动,并在MySQL闭源前将其分化,以其小女儿Maria的名字命名创建了MariaDB。
MariaDB,坚持开源的背后
邹欣:你在创建MariaDB时,曾提到要把它打造成第二个MySQL,并且确保它是开源的。那么对于数据库而言,为什么开源这么重要呢?
Monty:对于任何大型项目来说,开源都是非常重要的。既然要和巨头竞争,你就要有和他们一样的工具。在我看来,开源很适合用于软件开发,尤其是当公司规模还不大的时候。这个时候你很难兼顾公司和用户的需求,因此需要听取别人的想法。而开源就意味着可以获得社区的帮助,能够了解其他人的观点。有了开源,你可以开发出更好的产品,同时产品也能够获得更大的影响力。
邹欣:不过开源的一大弊端就是声音太多,需求不一,这种情况下该如何保证数据库能满足大多数人的需求呢?
Monty:要解决这个问题,就需要确保数据库足够灵活,这样才能满足大多数人的需求。在这一点上,MySQL和MariaDB的做法是建立各种性能不一的存储引擎,人们可以针对具体需求开发自己的存储引擎 。
事实上,对于那些有需求的人来说,MariaDB依旧是一个优秀的工具。而对于要求数据库体量较小且运行较快的人来说,MariaDB同样是一个不错的选择。在开发MariaDB时,我们考虑到了各种可能性,使它能够保持良好的性能。
邹欣:AI技术的发展让人们对数据库的期待发生了转变,今天数据库是否能够与AI技术结合,从而拥有数据决策能力?
Monty:对于数据库来说,最重要的是要处理AI需要的不同结构。因此我们添加了对JSON的支持,用于在MariaDB中支持动态列。这样人们就可以储存并检索数据,同时保留自己想要的格式。通常AI并不是要创造内容,更多的是实现文件自动化,这就是我们对于MariaDB所抱的期望。因此这两者完全是不同的工具集。
除此之外,我们还需要一个良好的环境,其中每一个部分都是可替代的,要确保自己不被束缚。一旦有了束缚的存在,那么你的应用程序就需要与静态系统相结合,这会大大降低灵活性。我认为对于数据库来说,要注意的一点就是,要确保数据库容易上手,而这恰恰意味着更多的AI技术能够整合到数据库中。
仍然每天坚持写代码
邹欣:在中国IT行业有这样一种现象,认为程序员过了35岁就要转型,进入管理层或是其他领域。对此你怎么看?
Monty:这在很多地方都很常见。这个现象的主要原因在于程序员在管理岗位上的工资要比单纯做编程高。因为很少有公司会重视优秀的程序员,这就导致了收入的差异。我认为,如今程序员没有晋升的空间。与其让他们被迫转型,不如建立一个能提升他们收入的新环境。要想做到这一点,公司就得让他们承担更多的责任。要程序员担任管理岗位也行,但前提是仍然要保证他们每天写代码的时间。毕竟好的经理人到处都是,好的程序员却千里挑一。
邹欣:据我所知,你仍然每天在坚持写代码,但同时也要负责MariaDB的运营和管理。那么,你如何平衡这两个身份呢?
Monty:我认为在写代码这方面,我还是有一点天分的,所以我想坚持下去。我会雇用经理人为我工作,这样我就可以做我最擅长的事情。我会参与代码审查、社区运营以及MariaDB的相关决策。但同时我也会花很多时间维系客户,与不同国家的开发者交流,其中有许多中国的开发者。我认为,除了写代码之外,这是我做的最重要的事。总而言之,我会雇佣经理人来做一部分管理,让我有足够的时间在真正重要的事情上。
邹欣:听闻你从20世纪80年代就开始在家办公,如今这一办公方式也开始流行起来,对于远程办公你有什么看法?
Monty:事实上我认为远程办公是非常灵活的工作方式,自1981年开始我就在家办公(MySQL和MariaDB团队都是在家办公)。我们招人之前可能从来没见过他们,甚至都不知道对面是个人还是团队。但是我们的效率一直都在线。能做到这一点的前提,是要对跟自己联系密切的同事有足够的了解。至少熟悉他们的样貌。
我认为对于八成的开发者而言,在家办公是一个不错的选择。可能有一小部分开发者,他们的工作负担比较重,在家提不起精神来。这就需要他们出去走走,见见朋友或是接触新事物。我刚开始在家办公的时候,也会担心这样是不是会被孤立。所以后来我会定期在家里举行派对,我也会亲自下厨。我们团队每年也会在一起待上一段时间。
一个好的程序员能抵五个一般的程序员
【参考资料】
https://zh.wikipedia.org/wiki/%E7%B1%B3%E5%8D%A1%E5%9F%83%E7%88%BE%C2%B7%E7%B6%AD%E5%BE%B7%E7%B4%90%E6%96%AF
https://blog.openocean.vc/founder-stories-a-hackers-hacker-6d5054c90564
https://huskyintelligence.com/leverage-open-source-code/
http://monty-says.blogspot.com/2009/12/help-saving-mysql.html
https://www.geeksforgeeks.org/introduction-of-mariadb/
http://www.josetteorama.com/from-mysql-to-mariadb-michael-%e2%80%9cmonty%e2%80%9d-widenius-talks-about-databases-and-his-projects/
https://dri.es/the-history-of-mysql-ab
https://mariadb.org/wp-content/uploads/2019/11/MySQL-MariaDB-story.pdf
END
《》全面上市,对话世界级大师,报道中国IT行业创新创造
—点这里↓↓↓记得关注标星哦~—
一键三连 「分享」「点赞」「在看」
成就一亿技术人